package com.sc.nft.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sc.nft.entity.ImGroupRule;
import com.sc.nft.entity.dto.AdminImGroupRuleAddDTO;
import com.sc.nft.entity.dto.AdminImGroupRuleUpdateDTO;
import com.sc.nft.entity.vo.AdminGroupRuleVO;
import com.sc.nft.sup.PageRequest;

import java.util.List;

public interface ImGroupRuleService {

    /**
     * 获取所有的群组归属规则
     *
     * @return
     */
    List<ImGroupRule> getAll();

    /**
     * 后台获取配置规则列表
     *
     * @param pageRequest
     * @return
     */
    Page<AdminGroupRuleVO> getList(PageRequest pageRequest);

    /**
     * 新增规则
     *
     * @param adminImGroupRuleAddDTO
     */
    void add(AdminImGroupRuleAddDTO adminImGroupRuleAddDTO);

    /**
     * 修改
     *
     * @param adminImGroupRuleAddDTO
     */
    void update(AdminImGroupRuleUpdateDTO adminImGroupRuleAddDTO);

    /**
     * 交集检查
     *
     * @param id    唯一id
     * @param start 起始下标
     * @param end   结束下标
     * @return
     */
    Boolean intersectionExamine(Long id, Integer start, Integer end);

    /**
     * 根据官方群数量获取对应的用户
     *
     * @param sum
     * @return
     */
    ImGroupRule accordingOfficialGroupSumGetRule(Integer sum);

}
